/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.piaohao.util.file;

/**
 *
 * @author Administrator
 */
public class DbToDataDictionary {

    /**
     * 创建数据库的数据字典，以word文档保存
     *
     * @param url 数据库连接地址，jdbc:mysql://localhost/safe
     * @param name 用户名
     * @param pwd 密码
     * @param savePath word文档保存路径
     */
    public static void execute(String url, String name, String pwd, String savePath) {
//        System.out.println("开始转换...");
//        long start = System.currentTimeMillis();
//        C3p0Plugin cp = new C3p0Plugin(url, name, pwd);
//        cp.start();
//        MSWordManager msWordManager = new MSWordManager(false);
//        msWordManager.createNewDocument();
//        try {
//            DbKit.setDataSource(cp.getDataSource());
//            List<String> lists = Db.query("show tables");
//            int tag = 1; //表游标
//            int count = lists.size();
//            for (String s : lists) {
//                //获取格式化对象
//                NumberFormat nt = NumberFormat.getPercentInstance();
//                //设置百分数精确度2即保留两位小数
//                nt.setMinimumFractionDigits(2);
//                //最后格式化并输出
//                System.out.println("已完成:" + nt.format(tag / (float) count));
//                List<Object[]> os = Db.query("show columns from " + s);
//                msWordManager.insertText("表" + tag + "：" + s);
//                msWordManager.setAlignment(1);
//                msWordManager.moveEnd();
//                msWordManager.createTable(4, os.size());
//                msWordManager.addFirstTableRow(tag);
//                msWordManager.putTxtToCell(tag, 1, 1, "字段名称");
//                msWordManager.putTxtToCell(tag, 1, 2, "字段代码");
//                msWordManager.putTxtToCell(tag, 1, 3, "字段类型");
//                msWordManager.putTxtToCell(tag, 1, 4, "字段备注");
//                int index = 2;
//                for (Object[] ss : os) {
//                    msWordManager.putTxtToCell(tag, index, 2, (String) ss[0]);
//                    msWordManager.putTxtToCell(tag, index, 3, (String) ss[1]);
//                    index++;
//                }
//                msWordManager.moveEnd();
//                msWordManager.insertSpace();
//                tag++;
//            }
//            File f = new File(savePath);
//            if (f.exists()) {
//                System.out.println("检测到文件已存在，自动在原文件名后面加上日期...");
//                msWordManager.save(savePath.replaceAll("\\.", TimeUtil.getNow("") + "."));
//            }
//            msWordManager.close();
//            long end = System.currentTimeMillis();
//            System.out.println("耗时：" + (end - start) / 1000 + "秒");
//        } catch (Exception ex) {
//            msWordManager.close();
//            Logger.getLogger(DBTest.class.getName()).log(Level.SEVERE, null, ex);
//        }
    }

    public static void main(String[] args) {
        DbToDataDictionary.execute("jdbc:mysql://localhost/safe", "root", "root", "c:/table.doc");
    }
}
